While loops

asked 2021-09-13 10:14:57 +0200

Ingrid gravatar image

updated 2021-09-13 10:58:17 +0200

Emmanuel Charpentier gravatar image

The goal to find the smallest value of a that satisfies the condition below. I realise I could use "if" instead of "while", but len(Lpathcellsdim4[s]) is big, and I want the computer to stop after it finds the first value of a satisfying the condition. I would be grateful for suggestions. Are there sage worksheets or tutorials to learn this type of thing? I have other, more complicated examples, where I want the computer to stop after it has found the first of many solutions.

The following gives an error "TypeError: argument of type 'sage.rings.integer.Integer' is not iterable"

b=0
for a in range(len(Lpathcellsdim4[s])):
      while Lvectorspolyfacesdim5[Lpathcellsdim4[s][a][0]][Lpathcellsdim4[s][a][1]][Lpathcellsdim4[s][a][2]] not in Lsimppdim5[n][5][5]:
             b=b+1
edit retag flag offensive close merge delete

Comments

1

use next and iter. See any python manual.

FrédéricC gravatar imageFrédéricC ( 2021-09-13 10:38:46 +0200 )edit
1
  • Your example is unreadable, even after reformatting. Could you give us a smaller example ?

  • The error messages says that you are trying to index something that is an integer ; this is probably related to the nature of the objects you are using and unrelated to your while loop.

  • Nothing in the while condition depends on b : this loop is effectively infinite.

  • This and this might be of some interest...

Emmanuel Charpentier gravatar imageEmmanuel Charpentier ( 2021-09-13 11:04:56 +0200 )edit

Thanks Emmanuel, there are some helpful examples there.

Ingrid gravatar imageIngrid ( 2021-09-13 11:23:08 +0200 )edit